.\" -*- nroff -*-
.\"
.\" Copyright (c) 1998 Doug Rabson
.\"
.\" All rights reserved.
.\"
.\" This program is free software.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd February 5, 2025
.Dt BUS_GENERIC_PRINT_CHILD 9
.Os
.Sh NAME
.Nm bus_generic_print_child ,
.Nm bus_print_child_domain ,
.Nm bus_print_child_footer ,
.Nm bus_print_child_header
.Nd generic implementation of
.Xr BUS_PRINT_CHILD 9
.Sh SYNOPSIS
.In sys/param.h
.In sys/bus.h
.Ft int
.Fn bus_generic_print_child "device_t dev" "device_t child"
.Ft int
.Fn bus_print_child_domain "device_t dev" "device_t child"
.Ft int
.Fn bus_print_child_footer "device_t dev" "device_t child"
.Ft int
.Fn bus_print_child_header "device_t dev" "device_t child"
.Sh DESCRIPTION
.Fn bus_generic_print_child
prints out the default device announcement message.
Given device
.Sq foo0
on bus
.Sq bar0
where foo0 has the description
.Dq FooCard 1234
and is associated with the NUMA domain 1,
the
following would be printed:
.Bd -literal -offset indent
foo0: <FooCard 1234> numa-domain 1 on bar0
.Ed
.Pp
.Fn bus_generic_print_child
calls the three helper functions
.Fn bus_print_child_header ,
.Fn bus_print_child_domain ,
and
.Fn bus_print_child_footer .
.Pp
.Fn bus_print_child_header
outputs the device name and unit followed by the device description
in angle brackets
.Po
.Dq foo0: <FooCard 1234>
.Pc .
.Pp
.Fn bus_print_child_domain
outputs
.Dq \& numa-domain
followed by the domain number if
.Fn bus_get_domain
returns a valid domain for the device
.Po
.Dq  numa-domain 1
.Pc .
If
.Fa dev
is not associated witha valid domain,
nothing is output.
.Pp
.Fn bus_print_child_footer
outputs the string
.Dq \& on
followed by the parent device's name and unit
.Po
.Dq \& on bar0
.Pc .
.Pp
These functions can be used to implement
.Xr BUS_PRINT_CHILD 9
in a bus driver if
.Fn bus_generic_print_child
is not sufficient.
.Sh RETURN VALUES
The number of characters output.
.Sh SEE ALSO
.Xr BUS_PRINT_CHILD 9 ,
.Xr device 9
.Sh AUTHORS
This manual page was written by
.An Doug Rabson .
